package com.sjx.jnistudy.swallow;


import java.util.List;


/**
 * Created by swallowsonny on 2016/11/24.
 *  解决嵌套ListView getView()调用多次的问题
 */

public abstract class SwallowAdapter<T> {
    private int mItemLayoutId;//ListView的item布局
    private List<T> mDatas;//数据源

    public SwallowAdapter(int itemLayoutId, List<T> datas) {
        mItemLayoutId = itemLayoutId;
        mDatas = datas;
    }

    public void onBind(int position, SwallowViewHolder holder){

        //回调bind方法， 多传一个data过去
        onBind(position, mDatas.get(position), holder);
    }

    /**
     * 数据绑定的方法
     * @param position  位置
     * @param data     数据
     * @param holder    itemView的ViewHolder
     */
    public abstract void onBind(int position, T data, SwallowViewHolder holder);

    public int getItemLayoutId(){
        return mItemLayoutId;
    }

    public void setItemLayoutId(int itemLayoutId) {
        mItemLayoutId = itemLayoutId;
    }

    public List<T> getDatas() {
        return mDatas;
    }

    public void setDatas(List<T> datas) {
        mDatas = datas;
    }
}
